function stego_cover = DCT_MED_rel(sub_cover,emd_msg,alpha)
%UNTITLED 此处显示有关此函数的摘要
%   此处显示详细说明
p=1;%指向秘密信息的指针
dct_cover=blkproc(sub_cover,[2 2],@dct2);%2*2分块DCT2
for x=1:2
  for y=1:2
      sub_emd_msg=emd_msg(p);%每次拿1bit
      embed_block=dct_cover((x-1)*2+1:x*2,(y-1)*2+1:y*2);%拿出每个2*2块
      sub_dct_stego_block=emb_relationship(embed_block,sub_emd_msg,alpha);
      dct_cover((x-1)*2+1:x*2,(y-1)*2+1:y*2)=sub_dct_stego_block;
      p=p+1;%指针后移
  end
end
stego_cover=blkproc(dct_cover,[2 2],@idct2);%逆变换得到隐写块
end

% function sub_dct_stego_block=emd_bit(embed_block,sub_emd_msg)
% a=embed_block(1,2);
% b=embed_block(2,1);
% a.s=symbol(a);
% b.s=symbol(b);
% if strcmp(sub_emd_msg,'0')
%     if abs(a)<=abs(b)    
%         temp=a;
%         b=a;
%         a=temp;
%     end
% else
%     if abs(a)>abs(b)    
%         temp=a;
%         b=a;
%         a=temp;
%     end
% end

% if abs(a)<abs(b)    
%     a=a-alpha;%将原本小的系数调整更小，使得系数 差别变大
% else
%     b=b-alpha;
% end
%     
% end

% function s=symbol(z)
% if z > 0
%     s=1;
% else
%     s=-1;
% end
% end

function embed_block=emb_relationship(embed_block,sub_emd_msg,alpha)
    if strcmp(sub_emd_msg,'0')     
        if embed_block(1,2)<embed_block(2,1) %选择  45°角上的两块             
            temp=embed_block(1,2);        %交换系数
            embed_block(1,2)=embed_block(2,1);        
            embed_block(2,1)=temp;      
        end
    else
        if embed_block(1,2)>embed_block(2,1)
            temp=embed_block(1,2);        %交换系数
            embed_block(1,2)=embed_block(2,1);        
            embed_block(2,1)=temp;
        end
    end
    if embed_block(1,2)<embed_block(2,1)    
        embed_block(1,2)=embed_block(1,2)-alpha;%将原本小的系数调整更小，使得系数 差别变大
    else
        embed_block(2,1)=embed_block(2,1)-alpha;
    end
end
